package com.briup.ch12;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @Author briup-adam
 * @Date 2023/10/25 下午4:45
 * @Description
 * 服务器 不宕机
 * 一直等待客户端连接
 * 接收来自各个ip上传的文件  文件名以ip命名保存到本地文件系统
 * 并返回给服务器 回执
 *
 **/

public class TcpServerDemo2 {
    public static void main(String[] args) {
        try {
            //创建服务器
            ServerSocket server = new ServerSocket(10086);
            System.out.println("服务器已经创建等待客户端连接");
            while (true){
                //等待客户端连接
                Socket socket = server.accept();
                //获取客户端的ip
                String ip = socket.getInetAddress().toString();
                System.out.println("有客户端"+ip+"来连接！");
                //读取客户端发送的图片 并保存到本地
                InputStream is = socket.getInputStream();
                FileOutputStream fos=new FileOutputStream("/Users/adam/code/idea-workspace/bttc-code/02code/src/com/briup/ch12/"+ip+".png");
                int len=0;
                byte [] b=new byte[1024];
                while ((len=is.read(b))!=-1){
                    fos.write(b,0,len);
                }
                fos.flush();
                fos.close();
                socket.shutdownInput();
                //发送回执
                OutputStream os = socket.getOutputStream();
                String msg=ip+":你上传的文件我已经收到了!🙏";
                os.write(msg.getBytes());
                socket.shutdownOutput();
                socket.close();
                System.out.println(ip+" 断开连接");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
